package com.ys.utils.alipay.model;

/**
 * @program: cloudm->AliErrorInfo
 * @Auther: 但何非
 * @Date: 2021/12/14 11:02
 * @Description:
 */
public class AliErrorInfo {
    /**
     * @ 名称:支付宝错误信息
     * @ 创建人: dhf
     * @ 参数： null
     * @ 创建时间: 2021/12/14
     * @ 修改人和其它信息
     * @ 返回值:
     */
    public static String errMsg(String sub_code){
        if("ACQ.SYSTEM_ERROR".equals(sub_code)){
            //	接口返回系统错误情况下，当前请求的退款可能成功也可能失败。 1、请使用相同的参数再次重试调用，需要保证退款请求号和退款金额不能变更。如果前一次退款请求已经处理成功，接口会幂等返回成功；如果前一次退款请求没有成功，接口会重试执行退款操作； 2、或者通过退款查询接口查询退款执行结果，发起退款查询接口需要保证间隔退款请求大于5秒以上；
            return "系统错误";
        }
        if("ACQ.INVALID_PARAMETER".equals(sub_code)){
            //请根据接口返回的错误信息，检查请求参数，修改后重新发起请求
            return "参数无效";
        }
        /*************************支付*************/
        if("ACQ.ACCESS_FORBIDDEN".equals(sub_code)){
            //未签约条码支付或者合同已到期
            return "无权限使用接口";
        }
        if("ACQ.EXIST_FORBIDDEN_WORD".equals(sub_code)){
            //修改订单信息后，重新发起请求
            return "订单信息中包含违禁词";
        }
        if("ACQ.PARTNER_ERROR".equals(sub_code)){
            //联系支付宝小二点这里，确认APP_ID的状态
            return "应用APP_ID填写错误";
        }
        if("ACQ.TOTAL_FEE_EXCEED".equals(sub_code)){
            //修改订单金额再发起请求
            return "订单总金额不在允许范围内";
        }
        if("ACQ.CONTEXT_INCONSISTENT".equals(sub_code)){
            //	更换商家订单号后，重新发起请求
            return "交易信息被篡改";
        }
        if("ACQ.TRADE_HAS_SUCCESS".equals(sub_code)){
            //	确认该笔交易信息是否为当前买家的，如果是则认为交易付款成功，如果不是则更换商家订单号后，重新发起请求
            return "交易已被支付";
        }
        if("ACQ.BUYER_BALANCE_NOT_ENOUGH".equals(sub_code)){
            //	买家绑定新的银行卡或者支付宝余额有钱后再发起支付
            return "买家余额不足";
        }
        if("ACQ.BUYER_BANKCARD_BALANCE_NOT_E".equals(sub_code)){
            //	建议买家更换支付宝进行支付或者更换其它付款方式
            return "用户银行卡余额不足";
        }
        if("ACQ.ERROR_BALANCE_PAYMENT_DISABL".equals(sub_code)){
            //	用户打开余额支付开关后，再重新进行支付
            return "余额支付功能关闭";
        }
        if("ACQ.BUYER_SELLER_EQUAL".equals(sub_code)){
            //	更换买家重新付款
            return "买卖家不能相同";
        }
        if("ACQ.TRADE_BUYER_NOT_MATCH".equals(sub_code)){
            //	更换商家订单号后，重新发起请求
            return "交易买家不匹配";
        }
        if("ACQ.PAYMENT_FAIL".equals(sub_code)){
            //	用户刷新条码后，重新发起请求，如果重试一次后仍未成功，更换其它方式付款
            return "支付失败";
        }
        if("ACQ.BUYER_PAYMENT_AMOUNT_DAY_LIM".equals(sub_code)){
            //	更换买家进行支付
            return "买家付款日限额超限";
        }
        if("ACQ.BUYER_PAYMENT_AMOUNT_MONTH_L".equals(sub_code)){
            //	买家更换账号后，重新付款或者更换其它付款方式
            return "买家付款月额度超限";
        }
        if("ACQ.ERROR_BUYER_CERTIFY_LEVEL_LI".equals(sub_code)){
            //	用户联系支付宝小二点这里
            return "买家未通过人行认证";
        }
        if("ACQ.PAYMENT_REQUEST_HAS_RISK".equals(sub_code)){
            //	更换其它付款方式
            return "支付有风险";
        }
        if("ACQ.NO_PAYMENT_INSTRUMENTS_AVAIL".equals(sub_code)){
            //	更换其它付款方式
            return "没用可用的支付工具";
        }
        if("ACQ.ILLEGAL_SIGN_VALIDTY_PERIOD".equals(sub_code)){
            //	更改接口中传入的签约有效期
            return "无效的签约有效期";
        }
        if("ACQ.MERCHANT_AGREEMENT_NOT_EXIST".equals(sub_code)){
            //	建议商户与支付宝确认签约代扣合同
            return "商户协议不存在";
        }
        /*******************退款*********************/
        if("ACQ.SELLER_BALANCE_NOT_ENOUGH".equals(sub_code)) {
            //商户支付宝账户充值后重新发起退款即可
            return "卖家余额不足"; 
        }
        if("ACQ.REFUND_AMT_NOT_EQUAL_TOTAL".equals(sub_code)){
            //1、请检查退款金额是否正确，请求的退款金额不能大于交易总金额；
            // 2、如果不是全额退款，退款请求号必填，请检查是否传入了退款请求号；
            return "退款金额超限";
        }
        if("ACQ.REASON_TRADE_BEEN_FREEZEN".equals(sub_code)){
            //联系支付宝小二，确认该笔交易的具体情况
            return "请求退款的交易被冻结";
        }
        if("ACQ.TRADE_NOT_EXIST".equals(sub_code)){
            //检查请求中的交易号和商户订单号是否正确，确认后重新发起
            return "交易不存在";
        }
        if("ACQ.TRADE_HAS_FINISHED".equals(sub_code)){
            //该交易已完结（已超过退款期限），不允许进行退款（即使重试也无法成功），建议联系买家进行线下退款处理。
            return "交易已完结";
        }
        if("ACQ.TRADE_STATUS_ERROR".equals(sub_code)){
            //查询交易，确认交易是否已经付款
            return "交易状态非法";
        }
        if("ACQ.DISCORDANT_REPEAT_REQUEST".equals(sub_code)){
            //退款请求号对应的退款已经执行成功，且本次请求的退款金额与之前请求的金额不一致，请检查传入的退款金额是否正确。 或者通过退款查询接口获取退款执行结果。
            return "请求信息不一致";
        }
        if("ACQ.REASON_TRADE_REFUND_FEE_ERR".equals(sub_code)){
            //同一笔交易累计请求的退款金额不能大于交易总金额，请检查退款请求的金额是否正确。
            return "退款金额无效";
        }
        if("ACQ.TRADE_NOT_ALLOW_REFUND".equals(sub_code)){
            //检查当前交易的状态是否为交易成功状态以及签约的退款属性是否允许退款，确认后，重新发起请求
            return "当前交易不允许退款";
        }
        if("ACQ.REFUND_FEE_ERROR".equals(sub_code)){
            //请检查传入的退款金额是否正确
            return "交易退款金额有误";
        }
        if("ACQ.TRADE_HAS_CLOSE".equals(sub_code)){
            //该交易已关闭，不能再进行退款，请确认请求退款的交易是否未支付或者已完成退款
            return "交易已关闭";
        }
        if("ACQ.BUYER_NOT_EXIST".equals(sub_code)){
            //买家已经注销账号，建议联系买家进行线下退款处理
            return "买家不存在";
        }
        if("ACQ.BUYER_ENABLE_STATUS_FORBID".equals(sub_code)){
            //联系支付宝小二确认买家状态异常原因，或者可联系买家进行线下退款处理
            return "买家状态异常";
        }
        if("ACQ.REASON_TRADE_STATUS_INVALID".equals(sub_code)){
            //查询交易，确认交易是否是支付成功状态，是的话可联系支付宝小二确认交易状态
            return "交易状态异常";
        }
        if("ACQ.NOT_ALLOW_PARTIAL_REFUND".equals(sub_code)){
            //由于交易使用了特定的优惠券等场景，该笔交易不支持部分退款，请对交易进行全额退款或者联系买家进行线下退款处理
            return "不支持部分退款";
        }
        if("ACQ.ONLINE_TRADE_VOUCHER_NOT_ALLOW_REFUND".equals(sub_code)){
            //此交易中核销了购买的代金券，不允许进行退款，可联系买家进行线下退款处理
            return "交易不允许退款";
        }
        if("ACQ.BUYER_ERROR".equals(sub_code)){
//            联系支付宝小二确认买家状态异常原因，或者可联系买家进行线下退款处理
            return "买家状态异常";
        }	
        if("ACQ.CURRENCY_NOT_SUPPORT".equals(sub_code)){
//            请确认传入的退款币种是否正确
            return "退款币种不支持";
        }	
        if("ACQ.ALLOC_AMOUNT_VALIDATE_ERROR".equals(sub_code)){
            //请调整退分账金额后重试
            return "退分账金额超限";
        }	
        if("ACQ.USER_NOT_MATCH_ERR".equals(sub_code)){
            //请联系支付宝小二处理
            return "交易用户不匹配";
        }	
        if("ACQ.TRADE_SETTLE_ERROR".equals(sub_code)) {
            //请检查传入的退结算项信息是否正确，如果正确请联系支付宝小二
            return "交易结算异常";
        }
        if("ACQ.REFUND_CHARGE_ERROR".equals(sub_code)){
            //请过一段时间后再重试发起退款
            	return "退收费异常";
        }
        return "";
    }

}
